#ifndef ADMINISTRADORPARTIDAS_H_
#define ADMINISTRADORPARTIDAS_H_

#include "Includes.h"
#include "Torneo.h"
class Torneo;
class AdministradorPartidas:public Thread {
private:
	Torneo* torneo;
	t_partida *inicializarPartida(const t_jugador *jugadorUno, const t_jugador *jugadorDos);
	void actualizarPartidas();
	void inicializarPartidaPuntajeRanking(t_partida* partida);

public:
	AdministradorPartidas(bool atachado);
	~AdministradorPartidas();
	void run();
	static void signalHandler(int signal);
	void crearPartida();
	t_partida* intentarPartida();
	bool noExistePartida(t_partida *partida);
	bool compararPartidas(t_partida *partidaA,t_partida *partidaB);
	void enlistarPartida(t_partida *partida);
	bool crearServidorPartida(t_partida *partida);
	void terminarPartida();
	void crearMemoriaCompartida(t_partida *partida,bool liberar);
	Torneo* getTorneo();
	void setTorneo(Torneo* torneo);
};

#endif /* ADMINISTRADORPARTIDAS_H_ */
